#include <stdio.h>
#include <math.h>
double f(double x)
{
    return (2*x*x*x-4*x*x+3*x-6);//把方程变成函数，方便随时调用
}
int main()
{
    double x1,x2,x3;//x1,x2代表区间左右边界，xx代表方程根的值
    do
    {
        scanf("%lf%lf",&x1,&x2);//使用do while()来保证输入循环，不符合条件继续输入，符合条件跳出来
    }
    while(f(x1)*f(x2)>0);//保证f(x1)和f(x2)是异号，这样才可以进行下一步的精准区间，否则，重新输入x1，x2的值
    do
    {
        x3=(x1+x2)/2;
        if(f(x3)*f(x1)>0)//再写一个while来判断根是否符合预期
            x1=x3;
        else
            x2=x3;
    }
    while(fabs(f(x3))>=1e-7);//le-6代表1*10的-6次方，它的值将影响到跟的准确度的问题
    printf("%5.4lf\n",x3);
    return 0;
}

